TRUNCATE (SQL)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
TRUNCATE는 SQL에서 사용되는 명령어 중 하나로, 테이블의 모든 행을 삭제하는 데 사용된다. DELETE FROM 명령어와 유사하지만, WHERE 절을 사용할 수 없고, 외래 키 제약 조건이 있는 테이블에서는 사용할 수 없다는 차이점이 있다. 또한, TRUNCATE는 일반적으로 DELETE보다 빠르며, 일부 데이터베이스 시스템에서는 롤백이 불가능하다. TRUNCATE 구문은 TRUNCATE TABLE 테이블명[, 테이블명]이며, TABLE 키워드는 생략 가능하며, SELECT, INSERT, UPDATE, DELETE 등과 같은 다른 SQL 명령어와 함께 사용된다.
더 읽어볼만한 페이지
- SQL 키워드 - Null (SQL)
Null은 SQL에서 데이터베이스 테이블 열의 값 부재를 나타내는 특별한 표식으로, 0이나 빈 문자열과 구별되며 삼진 논리와 관련된 특별한 처리 방식으로 인해 데이터베이스 설계 및 쿼리 작성 시 주의가 필요하고 SQL 표준 구현에 대한 논쟁이 존재한다. - SQL 키워드 - ALTER (SQL)
ALTER (SQL)은 SQL에서 데이터베이스 객체의 구조를 변경하는 명령문으로, 테이블에 컬럼을 추가/삭제하거나 이름을 변경하는 데 사용되며, 데이터베이스 시스템에 따라 구문과 사용법이 다르다.
2. TRUNCATE와 DELETE
`TRUNCATE TABLE` 명령어는 `DELETE FROM` 명령어와 거의 동일하게 작동하지만, 몇 가지 주요 차이점이 있다. `TRUNCATE`는 WHERE 절을 사용할 수 없어 모든 행을 일괄 삭제하며, 대상 테이블에 단독 잠금을 얻는다. 또한 외래 키에서 참조되는 테이블에서는 실행할 수 없는데, 이는 외래 키 무결성을 확인하지 않기 때문이다.
Oracle Database와 MySQL의 일부 스토리지 엔진에서는 TRUNCATE 실행 후 자동으로 커밋이 수행되어 롤백이 불가능하다. 반면, PostgreSQL과 같이 TRUNCATE를 트랜잭션 내에서 실행하여 롤백을 지원하는 데이터베이스도 있다. Microsoft SQL Server에서는 TRUNCATE TABLE 문이 복제 및 로그 전달 대상 테이블에 대해 실행될 수 없는데, 이는 원격 데이터베이스의 일관성을 유지하기 위해 트랜잭션 로그를 사용하기 때문이다.[3]
2. 1. WHERE 절 사용 불가
TRUNCATE는 WHERE 절을 사용하여 특정 행만 삭제할 수 없다. 테이블의 모든 행이 한 번에 삭제된다.[3]2. 2. 단독 잠금
TRUNCATE는 대상 테이블에 대한 단독 잠금을 얻어 작업을 수행한다.[3]2. 3. 외래 키 제약
`TRUNCATE TABLE` 명령어는 `DELETE FROM` 명령어와 거의 동일하지만, 외래 키에 의해 참조되는 테이블에서는 실행할 수 없다. 이는 `TRUNCATE`가 외래 키의 무결성을 확인하지 않기 때문이다.[3]2. 4. 롤백 가능 여부
Oracle Database와 MySQL의 일부 스토리지 엔진은 TRUNCATE 실행 후 자동으로 커밋을 하므로, TRUNCATE를 통한 삭제는 롤백할 수 없다.[3] PostgreSQL처럼 TRUNCATE를 트랜잭션 내에서 실행하여 롤백을 지원하는 데이터베이스도 있는데, 이는 대상 테이블을 "이전 버전"으로 트랜잭션이 완료될 때까지 유지하는 방식으로 구현된다.[3]2. 5. 트랜잭션 로그와 복제
Microsoft SQL Server에서는 TRUNCATE TABLE 문은 복제 및 로그 전달 대상 테이블에 대해 실행할 수 없다. 이는 원격 데이터베이스의 일관성을 유지하기 위해 트랜잭션 로그를 이용하기 때문이다.[3]3. 구문
sql
TRUNCATE [TABLE] 테이블명 [, 테이블명]
```
많은 데이터베이스 제품에서 `TABLE` 키워드는 생략 가능하다.[1]
4. SQL
sql
TRUNCATE [TABLE] 테이블명 [, 테이블명]
```
대부분의 데이터베이스 제품에서 `TABLE`은 생략할 수 있다.
SQL에서 사용되는 명령어는 다음과 같다.[1]
참조
[1]
웹사이트
ISO/IEC 9075 Database languages SQL
https://www.iso.org/[...]
2023-06-04
[2]
웹사이트
Description of the effects of nonlogged and minimally logged operations on transaction log backup and the restore process in SQL Server
http://support.micro[...]
Microsoft
2005-12-00
[3]
웹인용
Description of the effects of nonlogged and minimally logged operations on transaction log backup and the restore process in SQL Server
http://support.micro[...]
Microsoft
2005-12-00
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com